Linux is cool!

Published on Jun 4, 2025 | Back to blog page




Linux, and my identity as someone in computing, is an aspect of my character that is not featured much on this blog.

What is an Operating System

An operating system is computer software which manages the hardware of a computer so that software can use and communicate with it. Windows is an operating system, macOS or iOS is an operating system.

It is generally made out of these components; this will be overly technical, I apologise.

Core Components

Component Windows macOS Ubuntu (Linux) Arch Linux Gentoo FreeBSD
Kernel Windows NT Kernel XNU (Darwin) Kernel Linux Kernel Linux Kernel Linux Kernel FreeBSD Kernel
System Architecture Monolithic with modular drivers Hybrid (Mach/BSD hybrid) Monolithic with loadable modules Monolithic with loadable modules Monolithic with customisable modules Monolithic with loadable modules

File System and Storage Management

Component Windows macOS Ubuntu (Linux) Arch Linux Gentoo FreeBSD
Primary File Systems NTFS, exFAT, FAT32 APFS, HFS+ ext4, Btrfs ext4, Btrfs, XFS ext4, Btrfs, XFS, ZFS UFS2, ZFS
Volume Management Storage Spaces, Disk Management Disk Utility, APFS Volumes LVM, ZFS LVM, Btrfs subvolumes LVM, md-raid ZFS pools, GEOM
File Explorer File Explorer Finder Nautilus (GNOME Files) Dolphin, Thunar (depends on DE) User choice (depends on DE) Dolphin, Thunar

User Interface and Experience

Component Windows macOS Ubuntu (Linux) Arch Linux Gentoo FreeBSD
Desktop Environment Windows Shell Aqua/Quartz GNOME (default) User choice (KDE, GNOME, Xfce, etc.) User choice (KDE, GNOME, Xfce, etc.) User choice (KDE, GNOME, Xfce, etc.)
Window Manager DWM (Desktop Window Manager) Quartz Compositor Mutter (with GNOME) Various (i3, KWin, etc.) Various (i3, KWin, etc.) Various (similar to Linux options)
Display Server DirectX/Windows Display Driver Model Quartz Compositor Wayland or X11 Wayland or X11 X11 (Wayland optional) X11

Package and Software Management

Component Windows macOS Ubuntu (Linux) Arch Linux Gentoo FreeBSD
Package Manager Windows Store, MSI installers App Store, Homebrew, MacPorts APT (apt-get, apt) Pacman Portage (emerge) pkg, ports collection
Package Format MSIX, MSI, EXE DMG, PKG DEB PKG.TAR.ZST Source code, EBUILDS PKG, ports
Software Updates Windows Update Software Update apt upgrade, Ubuntu Software pacman -Syu emerge —update —deep —newuse @world freebsd-update, pkg upgrade

Core System Services

Component Windows macOS Ubuntu (Linux) Arch Linux Gentoo FreeBSD
Init System Windows Services (wininit) launchd systemd systemd OpenRC (default), systemd (optional) rc.d (BSD init)
Service Manager Service Control Manager launchd systemd systemd OpenRC, systemd rc.d
Device Management Device Manager, PnP IOKit udev udev eudev, udev devd

Security Components

Component Windows macOS Ubuntu (Linux) Arch Linux Gentoo FreeBSD
User Permissions User Account Control (UAC) sudo, file permissions sudo, file permissions sudo, file permissions sudo, file permissions sudo, file permissions, jails
Firewall Windows Defender Firewall macOS Firewall (pf) UFW (Uncomplicated Firewall) iptables, firewalld iptables, nftables pf, ipfw
Application Sandboxing Windows Sandbox App Sandbox Snap confinement, Flatpak Flatpak SELinux (optional), Flatpak jails, Capsicum

Development and System Tools

Component Windows macOS Ubuntu (Linux) Arch Linux Gentoo FreeBSD
Compiler Toolchain MSVC, MinGW, Clang Clang (Xcode) GCC, Clang GCC, Clang GCC, Clang (highly customisable) Clang, GCC
System Monitoring Task Manager, Performance Monitor Activity Monitor top, htop, System Monitor top, htop top, htop, genlop top, htop
Virtualisation Hyper-V Hypervisor.framework KVM, VirtualBox KVM, VirtualBox KVM, VirtualBox bhyve

Networking

Component Windows macOS Ubuntu (Linux) Arch Linux Gentoo FreeBSD
Network Stack Windows TCP/IP BSD socket API/Darwin Linux networking stack Linux networking stack Linux networking stack BSD networking stack
Network Manager Network Connections Network Preferences NetworkManager NetworkManager NetworkManager, netifrc rc.conf network config, netif
DNS Resolution DNS Client mDNSResponder systemd-resolved systemd-resolved resolvconf, systemd-resolved unbound, BIND

History of Linux

Linux began with this message and now runs something like 90% of all computers in the world.

“Hello everybody out there using minix - I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones.”

  • 25th August 1991, when Linus Torvalds

Linux did not want the distro to be named after him, but a collaborator uploaded it to an FTP server under that name and the name stuck.

Technically speaking, “Linux” refers specifically to the kernel—the core component that manages system resources, facilitates communication between hardware and software, and provides essential services for computer programs. In discourse, Linux refers to Linux Operating Systems or distributions (distros). These package Linux and the GNU utils with whatever else the distro maker wants to make a complete computing environment.

The History of Linux

Genesis: From UNIX to Linux (1960s-1991)

The UNIX Foundation

UNIX was first developed at AT&T’s Bell Labs in 1969 by legendary computer scientists Ken Thompson and Dennis Ritchie. UNIX revolutionised computing with its portable design, multiuser capabilities, and philosophy of small, modular tools working together. However, as a proprietary system with restrictive licensing, UNIX remained inaccessible to many.

The GNU Project

In 1983, Richard Stallman launched the GNU Project (recursive acronym GNU’s Not UNIX) to create a completely free UNIX-like operating system (this is still an ongoing project they are trying to replace all of the Linux kernel; it’s funny but useless). By 1990, GNU had developed most of the essential components needed for a complete operating system—compilers, text editors, shells, libraries—but did not have a kernel.

Minix as Inspiration

Andrew Tanenbaum created MINIX in 1987 as a simplified UNIX-like system for teaching operating system principles. A young Finnish student named Linus Torvalds used MINIX whilst studying at the University of Helsinki, but was really pissed off with Tanenbaum’s design choices and how limiting the system was.

The Birth of Linux (1991)

On 25th August 1991, Linus Torvalds posted his now-famous message to the comp.os.minix newsgroup:

“Hello everybody out there using minix - I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones.”

Torvalds had begun by writing a terminal emulator to connect to the university’s computers. This project gradually evolved into a kernel. He initially wanted to call his creation “Freax” (combining “free,” “freak,” and “UNIX”), but when his friend Ari Lemmke created a directory for it on the FTP server at the Helsinki University of Technology, he named it “Linux” without consulting Torvalds. Despite Torvalds’ initial reluctance, the name stuck.

On 17th September 1991, Torvalds released Linux version 0.01, comprising 10,239 lines of code. In October, version 0.02 was released with the ability to run Bash and GCC (the GNU compiler for the C and C++), creating the first functional Linux system.

The GNU/Linux Combination (1992-1993)

The marriage of the Linux kernel with GNU tools created a complete, free operating system. This symbiotic relationship led Richard Stallman and the Free Software Foundation to advocate for the term “GNU/Linux”.

Within the Linux community this has become somewhat of a meme; there is debate as to whether or not these were Stallman’s words, but it pretty much is now.

“I’d just like to interject for a moment. What you’re referring to as Linux, is in fact, GNU/Linux, or as I’ve recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.” - Richard Stallman (Maybe)

In February 1992, Linux 0.12 was released under the GNU General Public License (GPL), ensuring the kernel would remain free and open-source. This crucial decision facilitated widespread collaboration and established the legal framework for Linux’s development model.

The Rise of Distributions (1992-1996)

Early Linux users faced complex installation processes, requiring manual configuration of every system component. This led to the creation of Linux distributions (distros), which packaged the kernel with other software, documentation, and installation tools. These included:

  • MCC Interim Linux (1992): Created at Manchester Computing Centre, one of the first distributions
  • SLS (Softlanding Linux System) (1992): Added the X Window System for graphical interfaces
  • Slackware (1993): Created by Patrick Volkerding, the oldest continuously maintained distribution
  • Debian (1993): Founded by Ian Murdock with a focus on community development and free software principles
  • Red Hat Linux (1994): Founded by Marc Ewing and Bob Young, pioneering commercial Linux support
  • SUSE (1994): Originally a German translation of Slackware, later developing its own identity

These were originally distributed by mail on USBs or floppy disks, but soon turned to being distributed by torrent or FTP.

Technical Evolution (1994-2001)

Distros caused development on the kernel itself to rapidly increase.

  • Linux 1.0 (1994): The first “production-ready” version, supporting single-processor systems
  • Linux 1.2 (1995): Added support for more hardware architectures
  • Linux 2.0 (1996): Introduced multi-processor support (SMP) and improved networking
  • Linux 2.2 (1999): Enhanced support for multiple file systems and improved hardware compatibility
  • Linux 2.4 (2001): Added USB support, logical volume management, and improved SMP scalability

Enterprise Adoption (1998-2003)

Several developments in the late 1990s facilitated Linux’s growth in enterprise environments:

  • IBM’s Support (1998): IBM announced a $1 billion investment in Linux development
  • Oracle for Linux (1998): Oracle released its database for Linux, legitimising it for business use
  • Red Hat’s IPO (1999): Red Hat went public, setting records for first-day gains
  • Founding of OSDL (2000): The Open Source Development Labs (later the Linux Foundation) was created to accelerate enterprise Linux adoption
  • Enterprise Distributions (2002-2003): Red Hat Enterprise Linux and SUSE Linux Enterprise Server established the enterprise Linux market

Desktop Linux Developments (2000-2010)

Whilst Linux dominated the server market, efforts to make it user-friendly for desktop users accelerated:

  • GNOME 1.0 (1999) and KDE 1.0 (1998): The major desktop environments matured
  • Ubuntu (2004): Founded by Mark Shuttleworth, Ubuntu focused on user-friendliness and regular releases
  • Firefox (2004): The Mozilla browser provided Linux users with a modern web experience
  • OpenOffice.org (later LibreOffice): Provided essential productivity applications
  • Proprietary Software Support: Software distributors began creating apk or deb or rpm releases for their software, or adding them directly to software repositories.

Mobile and Embedded Linux (2007-Present)

Linux found tremendous success beyond traditional computing:

  • Android (2008): Google’s Linux-based mobile OS became the world’s most widely used operating system
  • Chrome OS (2011): Google’s lightweight, Linux-based operating system for Chromebooks
  • Embedded Linux: Powering routers, smart TVs, in-vehicle infotainment systems, and industrial controllers
  • Internet of Things: Linux became the foundation for pretty much all IoT devices, i.e., thermostats, toasters, fridges or anything with ‘smart’ before it is running Linux.
  • Raspberry Pi (2012): These low-cost, Linux-powered computers popularised tinkering and education

The Cloud Revolution (2010-Present)

Linux became the dominant platform for cloud computing:

  • Amazon EC2 (2006): Built on a modified Red Hat Enterprise Linux
  • OpenStack (2010): Open-source cloud platform primarily running on Linux
  • Docker (2013): Containerisation technology built on Linux kernel features
  • Kubernetes (2014): Container orchestration platform

Linux now

Linux is everywhere in our lives, yet we don’t even know it. From Torvalds’ humble announcement to powering roughly 90% of the world’s computing infrastructure (including Android devices, servers, supercomputers, embedded systems, desktops (now 4%) and cloud platforms. What began as “just a hobby” has become the foundation of all modern digital infrastructure. The best thing about it is it is all open source and developed for the purpose of progressing humanity, not for profit.

Without Linux we would be decades behind in our technological growth and computing would only be for those who can afford it.

The Linux Desktop

As it is systems which force immoral actions, not individuals, switching to Linux for your desktop is undoubtedly the correct “ethical” thing to do. I will write a longer piece on why later, but for now imagine it like going vegan, not using Amazon, buying fair trade coffee, recycling, donating to charity or voting. These are all things that have become supererogatory; no one is a moral saint, but we can make little consumer choices to help humanity reclaim its independence from the machine.

Beyond the morality of it, Linux is objectively a better operating system. In fact, most major developments in Windows and Mac have been designs that they stole from Linux distros. With Flatpak, Snap and Steam software support has become almost universal, even PewDiePie has switched over.

Linux is also really fun to use, being able to contribute to something as well as tinker so that your computer is tailored to your needs. You can do some crazy things (check out r/unixporn for examples) and have access to the cutting edge of software.

Actually Switching

First you need to backup any data that you want to bring over somewhere; this can be on a cloud service or on a USB/hard drive.

Next you want to choose a distro; this can be daunting because there are so many options. In general I recommend using Distrochooser and following its recommendations.

I have run Linux since 2018 (7 years as of writing); these are all the distros I have used across my machines.

gantt
    title My Distro Hopping Journey 
    dateFormat YYYY-MM-DD
    axisFormat %Y
    
    section Arch Based
    Arch                  :arch1, 2020-06-30, 2025-06-04
    Garuda                :2019-10-30, 2020-04-30
    Manjaro               :2019-11-20, 2020-03-30
    Endeavour             :2020-03-20, 2020-05-20
    Artix                 :2020-08-30, 2020-12-03
    
    section Independent
    Void Linux            :2020-12-15, 2021-02-12
    Gentoo                :2021-02-12, 2021-12-03
    Slackware             :2021-06-15, 2021-07-15
	
    section Debian Based
    Ubuntu                :ubuntu1, 2018-09-30, 2018-11-30
    Ubuntu (KDE)          :ubuntu2, 2020-03-30, 2020-07-30
    Ubuntu (Server)       :ubuntu3, 2022-01-01, 2025-06-04
    Debian                :2024-03-01, 2024-04-01
    Duvean                :2020-11-30, 2021-04-10
    PopOS                 :popos1, 2022-08-20, 2025-06-04
    Zorin OS              :zorin1, 2021-09-30, 2022-03-20
    Zorin OS Pro          :zorin2, 2023-12-30, 2025-06-04
    Mint                  :2022-03-10, 2022-08-20
    Deepin                :2018-06-01, 2018-07-01
    Kali Linux            :2019-06-01, 2022-01-01
    
    section RHEL Based
    Fedora                :2022-03-30, 2022-10-30
    AlmaLinux             :2023-12-01, 2024-06-01
    
    section SUSE Based
    openSUSE Tumbleweed   :2018-06-01, 2018-07-01
    
    section BSD
    FreeBSD               :2021-11-01, 2022-02-03
	
    section Nix
    NixOS                 :2022-11-01, 2022-12-03
    
    section Security Focused
    Qubes OS              :2022-01-01, 2025-06-04
	
    section Windows
    Windows               :2015-10-04, 2019-10-01
    WSL                   :2018-10-04, 2019-10-01
	
    section Mac
    macOS                 :2014-08-03, 2022-08-01
  

In my opinion I think everyone should start on an Ubuntu-based system. I recommend Zorin OS or Pop!_OS for complete beginners. Both of these are made by really incredible companies and are fun and easy to use.

Once you get used to Linux and maybe delve into the command line a bit, you may find yourself wanting more control over the operating system. For that I would recommend just installing Arch or Gentoo. These are notoriously difficult tasks that people like to brag about, but will teach you everything about how an operating system works and what goes into making it.

After that distro hop! Try out a bunch of distributions and see what you like. You will find they are all really the same thing packaged differently; the only major difference is the package manager you use.

Debian systems will use apt or dpkg which I find very limiting, but make your own opinion. Red Hat-based systems use dnf, rpm or yum; these are really good as well and infinitely an upgrade from Debian systems.

Arch systems use pacman or the AUR which is my choice as it is the most complete. Valve agrees with me and uses it as the base for SteamOS. Nix is another fun one which allows you to write your entire operating system into one config file, meaning you can replicate it on a new computer in minutes. Gentoo is a pain as it mandates that you compile all the packages yourself; this takes a long time but decreases the bloat (amount of useless software on your computer) and tailors each package to your hardware so it is the most efficient it can be. Gentoo is also the backbone for Chrome OS. Void Linux allows you to use both pre-compiled and compile-yourself packages; it is a younger distro so software support is not as complete as Arch.

The other choice you will need to make is systemd vs OpenRC or another init system. Many are religiously anti-systemd, seeing it as old, rejecting the UNIX design principles and bloat (does too much). Personally I have used both and don’t really care; I agree with them but systemd is more popular so I generally use it. Most distros will have a non-systemd alternative: Artix for Arch, Devuan for Debian etc. If this doesn’t make sense it doesn’t need to.

TL;DR

Linux is cool, you should use it. Use this to find which distro you should use and get started!

Email me at me@danielokita.com

LinkedIn
GitHub
Instagram
as well as the source code for this website here